{
 "metadata": {
  "name": "",
  "signature": "sha256:310e2ab65c154123bd98e1e66db7f60890ce150a343697cbf3bc014fab48d5a1"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "import pandas as pd\n",
      "from os.path import join\n",
      "\n",
      "from pylab import rcParams\n",
      "import matplotlib.pyplot as plt\n",
      "%matplotlib inline\n",
      "rcParams['figure.figsize'] = (16, 8)\n",
      "\n",
      "import nilmtk\n",
      "from nilmtk import DataSet, TimeFrame, MeterGroup, HDFDataStore\n",
      "from nilmtk.disaggregate import CombinatorialOptimisation\n",
      "from nilmtk.utils import print_dict\n",
      "from nilmtk.metrics import f1_score\n",
      "\n",
      "import seaborn as sns\n",
      "\n",
      "import warnings\n",
      "from nilmtk.plots import plot_pairwise_heatmap\n",
      "warnings.filterwarnings(\"ignore\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "data_dir = '/home/nipun/Downloads/'\n",
      "we = DataSet(join(data_dir, 'wikienergy.h5'))\n",
      "print('loaded ' + str(len(we.buildings)) + ' buildings')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "loaded 239 buildings\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "building_number = 11\n",
      "print_dict(we.buildings[building_number].metadata)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "html": [
        "<ul><li><strong>instance</strong>: 11</li><li><strong>dataset</strong>: WikiEnergy</li><li><strong>original_name</strong>: 434</li></ul>"
       ],
       "metadata": {},
       "output_type": "display_data",
       "text": [
        "<IPython.core.display.HTML at 0x7fb1e4043950>"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec = we.buildings[building_number].elec\n",
      "elec.appliances"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 4,
       "text": [
        "[Appliance(type='fridge', instance=1),\n",
        " Appliance(type='dish washer', instance=1),\n",
        " Appliance(type='electric water heating appliance', instance=1),\n",
        " Appliance(type='spin dryer', instance=1),\n",
        " Appliance(type='electric furnace', instance=1),\n",
        " Appliance(type='sockets', instance=1),\n",
        " Appliance(type='sockets', instance=2),\n",
        " Appliance(type='air conditioner', instance=1),\n",
        " Appliance(type='sockets', instance=3),\n",
        " Appliance(type='sockets', instance=4)]"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "submeters = elec.submeters().meters\n",
      "submeters"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 5,
       "text": [
        "[ElecMeter(instance=2, building=11, dataset='WikiEnergy', appliances=[Appliance(type='air conditioner', instance=1)]),\n",
        " ElecMeter(instance=3, building=11, dataset='WikiEnergy', appliances=[Appliance(type='sockets', instance=1)]),\n",
        " ElecMeter(instance=4, building=11, dataset='WikiEnergy', appliances=[Appliance(type='sockets', instance=2)]),\n",
        " ElecMeter(instance=5, building=11, dataset='WikiEnergy', appliances=[Appliance(type='dish washer', instance=1)]),\n",
        " ElecMeter(instance=6, building=11, dataset='WikiEnergy', appliances=[Appliance(type='spin dryer', instance=1)]),\n",
        " ElecMeter(instance=7, building=11, dataset='WikiEnergy', appliances=[Appliance(type='electric furnace', instance=1)]),\n",
        " ElecMeter(instance=8, building=11, dataset='WikiEnergy', appliances=[Appliance(type='sockets', instance=3)]),\n",
        " ElecMeter(instance=9, building=11, dataset='WikiEnergy', appliances=[Appliance(type='sockets', instance=4)]),\n",
        " ElecMeter(instance=10, building=11, dataset='WikiEnergy', appliances=[Appliance(type='fridge', instance=1)]),\n",
        " ElecMeter(instance=11, building=11, dataset='WikiEnergy', appliances=[Appliance(type='electric water heating appliance', instance=1)])]"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "we.store.window = TimeFrame(start='2014-04-01 00:00:00-05:00', end='2014-04-02 00:00:00-05:00')\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "first =submeters[0]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 7
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "first.entropy()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 8,
       "text": [
        "-24.495644032026519"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "first.mutual_information(submeters[9])"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 9,
       "text": [
        "0.16001344202839082"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec.entropy()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 10,
       "text": [
        "-0.76226727667920013"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "elec.entropy_per_meter().plot(kind='barh')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 12,
       "text": [
        "<matplotlib.axes.AxesSubplot at 0x7fb1ac137050>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7fb1ac147650>"
       ]
      }
     ],
     "prompt_number": 12
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plot_correlation_heatmap(_, \"\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "ename": "AttributeError",
       "evalue": "'AxesSubplot' object has no attribute 'columns'",
       "output_type": "pyerr",
       "traceback": [
        "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
        "\u001b[1;32m<ipython-input-14-98219e606aff>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mplot_correlation_heatmap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0m_\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
        "\u001b[1;32m/home/nipun/git/nilmtk/nilmtk/plots.pyc\u001b[0m in \u001b[0;36mplot_correlation_heatmap\u001b[1;34m(df, labels, edgecolors, cmap, log)\u001b[0m\n\u001b[0;32m     50\u001b[0m def plot_correlation_heatmap(df, labels, edgecolors='w', \n\u001b[0;32m     51\u001b[0m                              cmap=matplotlib.cm.RdYlBu_r, log=False):\n\u001b[1;32m---> 52\u001b[1;33m     \u001b[0mwidth\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     53\u001b[0m     \u001b[0mheight\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     54\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
        "\u001b[1;31mAttributeError\u001b[0m: 'AxesSubplot' object has no attribute 'columns'"
       ]
      }
     ],
     "prompt_number": 14
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plot_correlation_heatmap(correlation_df)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f541c6ab250>"
       ]
      }
     ],
     "prompt_number": 10
    }
   ],
   "metadata": {}
  }
 ]
}